package com.thoughtworks.wechatmoments.logic.moments;

import com.thoughtworks.wechatmoments.base.BaseView;
import com.thoughtworks.wechatmoments.entity.TweetsEntity;
import com.thoughtworks.wechatmoments.entity.UserInfoEntity;

import java.util.List;

import io.reactivex.Observable;

/**
 * Moments的Contract
 *
 * @author guowenlong
 */
public interface MomentsContract {
    interface Model {
        Observable<UserInfoEntity> getUserInfo();

        Observable<List<TweetsEntity>> getUserTweetsOneTime();
    }

    interface View extends BaseView {

        void showUserInfo(UserInfoEntity bean);

        void showTweets(List<TweetsEntity> tweets);

        void showMoreTweets(List<TweetsEntity> tweets);
    }

    interface Presenter {
        void getUserInfo();

        void getUserTweetsOneTime();

        void getUserTweets();

        void getMoreTweets(int index, int limit);
    }
}